package com.alpaak.common.adapter;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;

/**
 * @ClassName: ConfSetPropertyHolder 
 * @Description: properties 如果在 spring 中通过 PropertyPlaceholderConfigurer 加载，
 * 当spring 中需要 用到 properties 中的一些 key 和value 值时可以 利用 PorpertyPlaceholderConfiger 
 * 提供的${} 直接 取得。
 * @author: FengWenJu
 * @date: 2017年10月13日 上午10:26:05
 */
public class ConfSetPropertyHolder extends PropertyPlaceholderConfigurer {
	private static Map<String, String> propertiesMap;

	protected void processProperties(
            ConfigurableListableBeanFactory beanFactory, Properties props)
			throws BeansException {
		super.processProperties(beanFactory, props);

		propertiesMap = new HashMap();
		for (Iterator localIterator = props.keySet().iterator(); localIterator
				.hasNext();) {
			Object key = localIterator.next();
			String keyStr = key.toString();
			propertiesMap.put(keyStr, props.getProperty(keyStr));
		}
	}

	public static String getProperty(String name) {
		return (String) propertiesMap.get(name);
	}
}
